In computer graphics, input geometry or the like is typically used to represent a scene from which a sampled image is created. A sampled image is a grid, or “raster,” of discrete samples referred to as pixels. The pixels are generally arranged along two perpendicular axes corresponding to the horizontal and vertical axes of the image. Rendering a scene is the process of creating such an image of the scene. This process is also called rasterization. The value of a pixel is determined by calculating a sample value from the scene. The rasterized image, represented by the grid of pixels, is typically displayed visually, such as being printed or displayed upon a computer display monitor. The number of pixels and number of colors or values used in rendering a graphics image limit, to some extent, the quality, accuracy, and various characteristics of the image displayed, (for example, the image sampling accuracy, smoothness, detail, and resolution). A great amount of effort has been devoted to developing sophisticated graphics processing, rendering, and sampling methods for improving image quality. Rendering sampled images, however, produces unwanted artifacts. This production is called “aliasing.” An “anti-aliased” rendering method aims to reduce objectionable artifacts.
In addition to higher quality static images, rendering high-quality animation depicting visual effects of motion is also desirable. The illusion of motion is created by quickly displaying related images in a sequence in which an object changes appearance slightly. Although the animation of the object may appear to be continuous, each frame of the sequence is a separate image that is displayed momentarily. Thus, the quality of each frame impacts the quality of the overall animation or illusion of motion. Depending upon the method by which the sequence of images is sampled, the resulting representation of motion may result in the creation of motion artifacts. The more noticeable effects include “crawling” and “popping” of pixels on an edge of an object having a color that contrasts sharply with a different colored background.
For example, consider an object of a first color having a straight edge, that appears to be moving across a background of a second color. As the edge of the object moves across the boundary of a pixel, at some point there must be a determination as to how and when the color of the pixel changes from the color of the background to the color of the object. If the value of the pixel is taken from a single sample point, then when the edge of the object passes the sample point of the pixel, the color of the pixel is changed. The location of a single sample point is typically in the center of the pixel, and consequently, the color of a pixel is determined by the color at the center of the pixel. As a result the edge of the object may be well within the region defined by the pixel, but the pixel may still have the color of the background because the edge has not reached the center (i.e., the sample point) of the pixel.
When multiple frames of images are displayed in sequence to provide the illusion of an object in motion, the effect of pixels along the edge of the object “popping” from one color or value to another can be distracting for a viewer. The relative motion of an object with respect to the orientation of the sampling grid of the image may be such that pixels along the edge of the object pop values in a manner and with a regularity that create a visual crawling effect along the edge of the object.
There have been many different approaches to addressing the issue of such aliasing artifacts, including motion artifacts and “staircasing.” One such approach is to increase the resolution, or the number of pixels used to represent an image. For example, the available resolution of computer graphics has increased dramatically since the first monochrome computer monitors were developed, and undoubtedly will continue to do so. Similarly, printing devices have ever increasing resolution as well. However, there are practical limitations on the manufacturing of displays and other devices used for recreating an image. Computational limitations must also be considered because there are practical limitations with respect to the amount of data that can be processed in rendering an image. Moreover, no matter how high a resolution is used to represent a graphics image, the image is still nevertheless sampled at discrete intervals, and consequently, subject to some degree of aliasing, including motion artifacts.
Another approach has been to increase the number of values computed for each pixel. More specifically in constructing an image, multi-sampling anti-aliasing systems might use sample values from multiple samples taken at different locations within a pixel in determining the final value of a pixel. As a result, as the edge of a moving object first passes over one of a pixel's sample points, the pixel may take on a different value that is a compromise between the value of the object and that of the disparate background. For example, the pixel might change its value each time the object covers another sample point of the pixel, until all of the sample points share the color of the object, the pixel finally taking on the color of the object, assuming the size, shape, and motion of the object's result in the object gradually and completely covering the pixel.
The multiple samples for each pixel are typically arranged in an ordered pattern, such as in a rectangular grid where the sides of a rectangle defined by the positioned samples are parallel to the axes of the pixels. Previous approaches have also positioned the samples in a (pseudo)-random fashion. Random multi-sampling per pixel generally requires a considerable amount of computational power. As a result, some anti-aliasing algorithms employ sampling patterns which attempt to simulate a random sampling pattern. However, these patterns may require nearly the same computing power as for random multiple sampling per pixel.
Although conventional, multi-sample, full-scene anti-aliasing methods generally do reduce motion artifacts and edge effects, in some situations motion artifacts remain. Full-scene anti-aliasing is antialiased rendering of substantially a full frame. For example, when an object has an edge parallel to an axis of the sampling pattern and is moving in a direction perpendicular to the edge, a popping effect may be created when the edge of the object passes through multiple sample points simultaneously. Taking more samples per pixel may reduce the severity of multi-sampling motion artifacts, but processing overhead and economic considerations will place practical limits on the maximum number of samples that can be reasonably taken per pixel.
Therefore, there is a need for an alternative system and method for rendering an image from a representation of a scene, while reducing aliasing, such as motion artifacts and edge effects.